home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / gui / muibuilderv11.lha / muibuilder / mb / e / small / Small.e < prev    next >
Text File  |  1994-03-07  |  5KB  |  137 lines

  1. /******************************************************************************
  2.     Here is an example of an "environnement file". All you have to do, si to
  3. fill it with :
  4.     - use MUIBuilder+GenCodeE to generate the create_app() function
  5.     - add the code for your application !!!
  6. ******************************************************************************/
  7.  
  8. OPT OSVERSION=37
  9.  
  10.     /* Module definitions */
  11. MODULE 'muimaster', 'libraries/mui'
  12. MODULE 'utility/tagitem', 'utility/hooks'
  13. MODULE 'intuition/classes', 'intuition/classusr'
  14.  
  15.     /* Error handling */
  16. ENUM NO_LIBRARY, MUI_APPLICATION_FAILURE
  17. RAISE   NO_LIBRARY              IF OpenLibrary()=NIL,
  18.         MUI_APPLICATION_FAILURE IF Mui_NewObjectA()=NIL
  19.  
  20.     /* Constant definitions */
  21. CONST MUI_TRUE = 1
  22.  
  23.     /* Global variables */
  24. /*MUIB*/ DEF app, wi_smallexample, lv_label_0, lv_label_1, bt_ok, bt_cancel
  25.  
  26.  
  27.     /* Main procedure */
  28. PROC main() HANDLE
  29.  
  30.     DEF signal, result_DoMethod, running = TRUE
  31.  
  32.     muimasterbase := OpenLibrary('muimaster.library', 0)
  33.     create_app()
  34.  
  35.     /* Notify : close gadget => end of application */
  36.     doMethod( wi_smallexample, [ MUIM_Notify, MUIA_Window_CloseRequest, MUI_TRUE, app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit ] )
  37.  
  38.     /* Open the window */
  39.     set( wi_smallexample, MUIA_Window_Open, MUI_TRUE )
  40.  
  41.     WHILE running
  42.         result_DoMethod := doMethod( app, [ MUIM_Application_Input, {signal} ] )
  43.         SELECT result_DoMethod
  44.             CASE MUIV_Application_ReturnID_Quit
  45.                 running := FALSE
  46.         ENDSELECT
  47.         IF (running AND signal) THEN Wait( signal )
  48.     ENDWHILE
  49.  
  50.     Mui_DisposeObject( app )
  51.     CloseLibrary( muimasterbase )
  52.  
  53. EXCEPT
  54.     SELECT exception
  55.         CASE NO_LIBRARY
  56.         CASE MUI_APPLICATION_FAILURE
  57.     ENDSELECT
  58. ENDPROC
  59.  
  60.  
  61.     /* Procedure generated by GenCodeE which creates your application */
  62. PROC create_app()
  63.  
  64.     app := ApplicationObject,
  65.         MUIA_Application_Author, 'Eric Totel',
  66.         MUIA_Application_Base, 'SMALL',
  67.         MUIA_Application_Title, 'Small Example',
  68.         MUIA_Application_Version, '$VER : Small 1.0',
  69.         MUIA_Application_Copyright, '(c) 1993 Eric Totel',
  70.         MUIA_Application_Description, 'Here is a small example of MUI-Builder',
  71.         MUIA_HelpFile, 'small.guide',
  72.         SubWindow, wi_smallexample := WindowObject,
  73.             MUIA_Window_Title, 'Small example',
  74.             MUIA_HelpNode, 'WI_smallexample',
  75.             MUIA_Window_ID, MAKE_ID( "0", "W", "I", "N" ),
  76.             WindowContents, GroupObject,
  77.                 Child, GroupObject,
  78.                     GroupFrameT( 'two lists' ),
  79.                     MUIA_HelpNode, 'GR_lists',
  80.                     MUIA_Group_Horiz, MUI_TRUE,
  81.                     Child, lv_label_0 := ListviewObject,
  82.                         MUIA_HelpNode, 'LV_label_0',
  83.                         MUIA_Listview_List, DirlistObject,
  84.                             InputListFrame,
  85.                             MUIA_Dirlist_Directory, 'progdir:',
  86.                             MUIA_Dirlist_DrawersOnly, FALSE,
  87.                             MUIA_Dirlist_FilesOnly, FALSE,
  88.                             MUIA_Dirlist_FilterDrawers, FALSE,
  89.                             MUIA_Dirlist_MultiSelDirs, FALSE,
  90.                             MUIA_Dirlist_RejectIcons, FALSE,
  91.                             MUIA_Dirlist_SortDirs, MUIV_Dirlist_SortDirs_First,
  92.                             MUIA_Dirlist_SortHighLow, FALSE,
  93.                             MUIA_Dirlist_SortType, 0,
  94.                         End,
  95.                     End,
  96.                     Child, lv_label_1 := ListviewObject,
  97.                         MUIA_HelpNode, 'LV_label_1',
  98.                         MUIA_Listview_MultiSelect, MUIV_Listview_MultiSelect_Default,
  99.                         MUIA_Listview_List, VolumelistObject,
  100.                             InputListFrame,
  101.                         End,
  102.                     End,
  103.                 End,
  104.                 Child, GroupObject,
  105.                     MUIA_HelpNode, 'GR_grp_1',
  106.                     MUIA_Group_Horiz, MUI_TRUE,
  107.                     MUIA_Group_SameWidth, MUI_TRUE,
  108.                     Child, bt_ok := KeyButton( 'OK', "o" ),
  109.                     Child, bt_cancel := KeyButton( 'Cancel', "c" ),
  110.                 End,
  111.             End,
  112.         End,
  113.     End
  114. ENDPROC
  115.  
  116.  
  117.     /* DoMethod() function */
  118. PROC doMethod( obj:PTR TO object, msg:PTR TO msg )
  119.  
  120.     DEF h:PTR TO hook, o:PTR TO object, dispatcher
  121.  
  122.     IF obj
  123.         o := obj-SIZEOF object     /* instance data is to negative offset */
  124.         h := o.class
  125.         dispatcher := h.entry      /* get dispatcher from hook in iclass */
  126.         MOVEA.L h,A0
  127.         MOVEA.L msg,A1
  128.         MOVEA.L obj,A2           /* probably should use CallHookPkt, but the */
  129.         MOVEA.L dispatcher,A3    /*   original code (DoMethodA()) doesn't. */
  130.         JSR (A3)                 /* call classDispatcher() */
  131.         MOVE.L D0,o
  132.         RETURN o
  133.     ENDIF
  134.  
  135. ENDPROC NIL
  136.  
  137.